﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using proyectoFinalPDS.Aplicacion;
using proyectoFinalPDS.Persistencia;

namespace proyectoFinalPDS.Presentacion
{
    public partial class VerCursoUsuario : Form
    {

        int idUsuario;
        DTOCursos dtoC;
        int origen = 0;
        private List<Tarea> listaTareas;

        public VerCursoUsuario(int idUsuario, DTOCursos dtoC,int origen)
        {
            InitializeComponent();

            this.textEvaluaciones.Items.Add("Parcial 1");
            this.textEvaluaciones.Items.Add("Parcial 2");
            this.textEvaluaciones.Items.Add("Parcial 3");
            this.textEvaluaciones.Items.Add("Recuperatorio");
            this.textMaterial.Items.Add("Apunte Unidad I");
            this.textMaterial.Items.Add("Apunte Unidad II");
            this.textMaterial.Items.Add("Apunte Unidad III");
            this.textMaterial.Items.Add("Apunte Unidad IV");
            this.textMaterial.Items.Add("Transparencia Unidad I");
            this.textMaterial.Items.Add("Transparencia Unidad II");
            this.textMaterial.Items.Add("Transparencia Unidad III");
            this.textMaterial.Items.Add("Transparencia Unidad IV");
            this.textMaterial.Items.Add("Transparencia Unidad V");
            this.textMaterial.Items.Add("Transparencia Unidad VI");
            this.textMaterial.Items.Add("Transparencia Unidad VII");
            this.textMaterial.Items.Add("Transparencia Unidad VIII");
            

                        

            ControladorCursos controlador = new ControladorCursos();
            listaTareas = controlador.getTareas(dtoC.id);
            if (listaTareas.Count == 0)
                listitaTareas.Items.Add("No hay tareas Disponibles");
            else
                foreach (Tarea t in listaTareas)
                {       
                    this.listitaTareas.Items.Add(t.nombre);
                }


            this.idUsuario = idUsuario;
            this.dtoC = dtoC;
            this.origen = origen;
            labelFechafin.Text = dtoC.fechaFin.ToShortDateString() ;
            labelFechaInicio.Text = dtoC.fechainicio.ToShortDateString();

            labelNombreC.Text = dtoC.nombre;
            richTextDescripcion.Text = dtoC.descripcion;

            ControladorCursos cd = new ControladorCursos();

            List<DTODocente> lDTOD= cd.getDocentes(dtoC.id);
            

            foreach (DTODocente dtod in lDTOD)
            {
                TablaDocentes.Rows.Add(dtod.rol,dtod.nombre, dtod.apellido, dtod.mail);
            }

            if (idUsuario>0 && (estaCursando(idUsuario)))
                botonInscribirse.Hide();

            if (idUsuario < 0 && (esDocente(-idUsuario)))
                botonInscribirse.Hide();
            if(dtoC.fechaFin.CompareTo( DateTime.Now)<0)
                botonInscribirse.Hide();
            if (idUsuario == 0)
            {
                textEvaluaciones.Enabled = false;
                textMaterial.Enabled = false;
                listitaTareas.Enabled = false;
            }

            if (idUsuario > 0 && dtoC != null && (!estaCursando(idUsuario)))
            {
                textEvaluaciones.Enabled = false;
                textMaterial.Enabled = false;
                listitaTareas.Enabled = false;
            }
            List<DTOMaterial> lMaterial=cd.getMaterial();

        }

        private bool esDocente(int idUsuario)
        {
            ControladorDocente cd = new ControladorDocente();

            return cd.esDocente(idUsuario);
        }

        private bool estaCursando(int idUsuario)
        {
            ControladorCursos cc = new ControladorCursos();

            List<DTOCursos> cursos =cc.getCursosAlumno(idUsuario);

            foreach (DTOCursos curso in cursos)
            {
                if (curso.id == dtoC.id)
                    return true;
            }

            return false;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            CursosDisponibles cd = new CursosDisponibles(idUsuario);
            cd.Show();
            this.Dispose();
        }

        private void button1_Click(object sender, EventArgs e)
        {

                inscripcionCurso alta = new inscripcionCurso(idUsuario,dtoC);
                if (idUsuario > 0)
                {
                    alta.Show();
                }
                else
                {
                    alta.Show();
                }
                this.Dispose();
        }

        private void VerCursoUsuario_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (origen == 1)
            {
                CursosDisponibles cd = new CursosDisponibles(idUsuario);
                cd.Show();
                this.Dispose();
            }
            else if (origen == 2)
            {
                PantallaInicioAlumno pia = new PantallaInicioAlumno(idUsuario);
                pia.Show();
                this.Dispose();
            }
            else
            {
                PantallaInicioDocentes pid = new PantallaInicioDocentes(-idUsuario);
                pid.Show();
                this.Dispose();
            }
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void labelNombreC_Click(object sender, EventArgs e)
        {

        }

        private void VerCursoUsuario_Load(object sender, EventArgs e)
        {

        }

        private void textEvaluaciones_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void textMaterial_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}
